Methods of updating software components of a computer system are widely known. As a result of the continuously increasing complexity of computer systems and software components running on the latter, there is a high demand for software components to be updated. Updating the software components closes newly discovered security gaps or extends the functionality of the software components, for example.
The software components may be parts of application software or of an operating system, software components close to the hardware such as driver software in particular, or so-called firmware components stored in a non-volatile memory of a hardware component itself.
Virtually every manufacturer of software components provides for updating the software components provided by the manufacturer. For example, manufacturers of hardware components usually provide so-called flash programs to update a programmable flash memory with an updated firmware version. Manufacturers of drivers, operating systems and/or application programs generally provide utilities to update individual software components or a plurality of software components of the programs produced by the manufacturers.
As a result of the multiplicity of software components contained in a computer system, on the one hand, and the increasing frequency with which the software components are updated, on the other hand, the effort needed to maintain a computer system, in particular updating the software components installed thereon, is continuously increasing. This is disruptive, in particular, in server computers that generally operate without interruption and are therefore available for maintenance work only to a limited extent. In addition, the manual loading of update packages by an administrator or user of a computer system takes a long time.
Therefore, there is a need for methods and apparatuses that simplify updating software components of a computer system. A potential solution should preferably assist in reducing both the workload of an administrator and the system load of the computer system itself.